To verify proper implementation of software, software verification is an important phase in the development life cycle. In Avionics, software verification is considered even more critical and has to be verified based on the criticality of software. Coverage in testing refers to the extent to which a given verification activity has satisfied its objectives. Modified Condition Decision Coverage (referred as MC/DC in document) is one of the verification activities that are performed for structural coverage. MC/DC testing ensures that all the paths/branches in the code are exercised and the software behavior is as per requirement.
MC/DC criterion enhances the condition/decision coverage. Condition coverage requires that each condition in a decision take on all possible outcomes at least once and decision coverage ensures all possible outcomes are taken care of MC/DC ensures that every decision in the program has taken all possible outcomes at least once, every condition in a decision in the program has taken all possible outcomes at least once and every condition in a decision has been shown to independently affect that decision's outcome. MC/DC criterion enhances the condition/decision coverage criterion by requiring that each condition be shown to independently after the outcome of the decision and hence the MC/DC requires more thoughtful selection of test cases.
MC/DC provides a wide structural coverage by exhaustive testing, which is often expensive, time consuming and has complicated long codes. Developing of MC/DC test case is effort intensive and needs lot of understanding to generate optimal number of MC/DC test scenarios. Test cases are generally developed by manual process and heavily dependent on times, resource expertise and can seldom be considers consistent across projects. In most cases the test cases developed for a Boolean expression are not always effective. Automatic test case generating tools have been unsuccessful as the number of test cases produces is high which make them more time consuming and many test cases turn out to be unnecessary.